package com.alibaba.citrus.cr.platform.enhance.repository;

import java.util.List;

import com.alibaba.cz.base.tool.page.PageResult;

import com.epoch.app.crplatformenhance.api.customersalescopequery.dto.BatchQueryCustomerSaleScopeRequest;
import com.epoch.app.crplatformenhance.domain.customersalescope.dto.BatchQueryByIdsRequest;
import com.epoch.app.crplatformenhance.dto.request.QuerySaleScopeRequest;
import com.epoch.app.crplatformenhance.sdo.CustomerSaleScopeSDO;

public interface CustomerSaleScopeRepository {
    /**
     * 编辑用户销售范围
     *
     * @param saleScopeSDO
     * @return
     */
    Boolean edit(CustomerSaleScopeSDO saleScopeSDO);

    /**
     * 根据用户编码查询销售范围
     *
     * @param saleScopeSDO
     * @return
     */
    List<CustomerSaleScopeSDO> queryList(CustomerSaleScopeSDO saleScopeSDO);

    /**
     * 分页查询客户销售范围
     *
     * @param request
     * @return
     */
    PageResult<List<CustomerSaleScopeSDO>> pageQuery(QuerySaleScopeRequest request);

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    CustomerSaleScopeSDO load(String id);

    /**
     * 通过客户编码批量查询
     *
     * @param batchQueryCustomerSaleScopeRequest
     * @return
     */
    List<CustomerSaleScopeSDO> batchQueryCustomerSaleScopeByCustomerCodes(BatchQueryCustomerSaleScopeRequest batchQueryCustomerSaleScopeRequest);

    /**
     * 通过ID批量查询
     *
     * @param batchQueryByIdsRequest
     * @return
     */
    List<CustomerSaleScopeSDO> batchQueryCustomerSaleScopeByIds(BatchQueryByIdsRequest batchQueryByIdsRequest);

}
